home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / languages / interfaces3_5.lha / Interfaces / Timer.mod < prev    next >
Encoding:
Text File  |  1994-03-06  |  1.3 KB  |  67 lines

  1. (*
  2. (*
  3. **  Amiga Oberon Interface Module:
  4. **  $VER: Timer.mod 40.15 (28.12.93) Oberon 3.0
  5. **
  6. **   © 1993 by Fridtjof Siebert
  7. *)
  8. *)
  9.  
  10. MODULE Timer;
  11.  
  12. IMPORT e * := Exec;
  13.  
  14. CONST
  15. (* unit defintions *)
  16.   microHz    * = 0;
  17.   vBlank     * = 1;
  18.   eClock     * = 2;
  19.   waitUntil  * = 3;
  20.   waitEClock * = 4;
  21.  
  22.   timerName  * = "timer.device";
  23.  
  24. TYPE
  25.   TimeValPtr * = UNTRACED POINTER TO TimeVal;
  26.   TimeVal * = STRUCT
  27.     secs * : LONGINT;
  28.     micro* : LONGINT;
  29.   END;
  30.  
  31.   EClockValPtr * = UNTRACED POINTER TO EClockVal;
  32.   EClockVal * = STRUCT
  33.     hi * : LONGINT;
  34.     lo * : LONGINT;
  35.   END;
  36.  
  37.   TimeRequestPtr * = UNTRACED POINTER TO TimeRequest;
  38.   TimeRequest * = STRUCT (node * : e.IORequest)
  39.     time * : TimeVal;
  40.   END;
  41.  
  42.  
  43. CONST
  44.  
  45. (* IO_COMMAND to use for adding a timer *)
  46.   addRequest * = e.nonstd+0;
  47.   getSysTime * = e.nonstd+1;
  48.   setSysTime * = e.nonstd+2;
  49.  
  50. VAR
  51.  
  52. (*
  53.  *  You have to put a pointer to the timer.device here to use the timer
  54.  *  procedures:
  55.  *)
  56.  
  57.   base * : e.DevicePtr;
  58.  
  59. PROCEDURE AddTime    * {base,-42}(VAR dest{8},source{9}: TimeVal);
  60. PROCEDURE SubTime    * {base,-48}(VAR dest{8},source{9}: TimeVal);
  61. PROCEDURE CmpTime    * {base,-54}(VAR tv1{8} ,tv2{9}   : TimeVal): INTEGER;
  62. PROCEDURE ReadEClock * {base,-60}(VAR dest{8}: EClockVal): LONGINT;
  63. PROCEDURE GetSysTime * {base,-66}(VAR dest{8}: TimeVal);
  64.  
  65. END Timer.
  66.  
  67.